// 匹配守卫提供额外的条件
// 匹配守卫是一个指定于match 分支模式之后的额外的if条件，必须满足才能选择此分支

fn main() {
    let num = Some(5);

    match num {
        Some(x) if x < 5 => {println!("<5");}
        Some(x) => { println!("{}", x); }
        _ => { println!("No value"); }
    }

    let num_x = Some(10);
    let num_y = 10;

    match num_x {
        Some(num_x) if num_x == num_y => { println!("num_x == num_y"); }
        Some(num_x) => { println!("num_x is {}", num_x); }
        _ => { println!("None"); }
    }

    let x = 1;
    let y = false;
    match x {
        4 | 5 | 6 if y => { println!("y"); }
        _ => { println!("None"); }
    }
    println!("Hello, world!");
}
